package com.foreknow.demo6;

/**
 * 抽象类(abstract class):如果一个类中有一个或多个抽象方法，那么这个类就要声明为抽象类
 * 1.抽象类中的抽象方法只有方法的声明没有实现 public abstract void login(String name);
 * 2.子类负责实现抽象类中的抽象方法
 * 3.抽象类中可以写抽象方法，也可以写非抽象方法，可以写变量也可以写常量（实际
 *   应用中包含都是抽象方法）
 * 4.抽象类是不能被实例化的（不能new）
 * 5.抽象方法不能为static
 */
public abstract class Person {

    /**
     * 登录
     * @param username
     * @param password
     * @return
     */
    public abstract boolean login(String username, String password);

    /**
     * 注册
     * @param username
     * @param password
     * @return
     */
    public abstract boolean sign(String username, String password);

    /**
     * 根据Id查询某一个Person信息
     * @param id
     * @return
     */
    public abstract Person SelectById(int id);

    /**
     * 查询所有用户的信息
     */
    public abstract Person[] SelectAll();

    /**
     * 根据id删除某一个person的信息
     * @param id
     * @return
     */
    public abstract int DeleteById(int id);
}
